<?php
/**
 * Created by PhpStorm.
 * User: win7
 * Date: 2018/4/27
 * Time: 10:43
 */

namespace app\api\validate;

use app\lib\exception\ParameterException;
use think\Request;
use think\Validate;

class BaseValidate extends Validate{
    // 全局表单处理验证
    public function goCheck() {
        $request = Request::instance(); // 初始化$request = Request::instance();
        $params = $request->param(); // 获取前端请求所有参数
        // batch() 是否批量
        // check() 验证规则
        $result = $this->batch()->check($params); // 验证通过返回true
        if (!$result) {
            $e = new ParameterException([
                'msg' => $this->error,
                'errorCode' => 10002
            ]);
//            $e->msg = $this->error;
            throw $e;
//            throw new BaseException($this->error);
        } else {
            return true;
        }
    }

    /*
     * 自定义验证规则：参数必须是正整数
     * $value 需要验证的值
     * $rule 验证规则，（不过用的少）
     * $data 需要验证的整个数组
     * $field 需要验证的字段名
     */
    protected function isPositiveInteger($value='', $rule='', $data='', $field=''){
        if ($value) {
            // $value + 0 的目的，将$value转化为数字
            if (is_numeric($value) && is_int($value+0) && ($value+0) > 0) {
                return true;
            } else {
                return false;
            }
        }
    }
}